from pyspark.sql import SparkSession

if __name__ == '__main__':
    spark = SparkSession.builder. \
        appName("test"). \
        master("local[*]"). \
        getOrCreate()

    sc = spark.sparkContext

    # 基于RDD转换成DataFrame
    rdd = sc.textFile("../data/input/sql/people.txt").map(lambda x: x.split(",")).map(lambda x: (x[0], x[1].strip()))

    df = spark.createDataFrame(rdd, schema=['name', 'age'])

    # 打印DataFrame表机构
    df.printSchema()

    # 打印df中的数据
    # 参数1 表示 展示出多少条数据，默认不传的话是20
    # 参数2 表示 是否对列进行截断，如果列的长度超过20个字符串长度，后续的内容不显示，以...代替
    # 如果给False 表示不截断全部显示，默认True
    df.show()

    df.createOrReplaceTempView("people")
    spark.sql("select * from people where age < 30").show()
